#include "traverse.hpp"
using namespace std;
void printCon(vector<char> &vec)
{
    for (auto &it : vec)
        cout << it << " ";
}
// g++ traverse.cc -o test -std=c++11
int main()
{
    // 创建二叉树
    BTNode *root = CreatBinaryTree();
    // NLR
    cout << "前序递归：  ";
    pre_recurse(root);
    cout << "\n前序非递归：";
    pre_nonrecurse1(root);
    cout << "\n前序非递归：";
    pre_nonrecurse2(root);
    printf("\n");

    // LNR
    cout << "\n中序递归：  ";
    in_recurse(root);
    cout << "\n中序非递归：";
    in_nonrecurse(root);
    printf("\n");

    // LRN
    cout << "\n后序递归：  ";
    post_recurse(root);
    cout << "\n后序非递归：";
    vector<char> vec = post_nonrecurse(root);
    printCon(vec);
    cout << "\n后序非递归：";
    vec = post_reverse(root);
    printCon(vec);
    cout << "\n后序非递归：";
    post_flag(root);
    printf("\n");

    return 0;
}